/**
 * 音效设置使用示例
 * 展示如何在其他页面使用音效设置功能
 */

import {
  getGameSoundEnabled,
  getGameMusicEnabled,
  setGameSoundEnabled,
  setGameMusicEnabled,
  playSound,
  playBackgroundMusic,
} from "./soundSettings.js";

// 示例1: 在页面中检查音效状态
export default {
  data() {
    return {
      // 其他数据...
    };
  },

  onLoad() {
    // 检查音效状态
    const soundEnabled = getGameSoundEnabled();
    const musicEnabled = getGameMusicEnabled();

    console.log("游戏音效状态:", soundEnabled);
    console.log("游戏音乐状态:", musicEnabled);

    // 如果音乐开启，播放背景音乐
    if (musicEnabled) {
      this.backgroundMusic = playBackgroundMusic(
        "https://img.jingkakeji.com/img/static/music/background.mp3",
        0.3,
        true
      );
    }
  },

  methods: {
    // 示例2: 点击按钮时播放音效
    onButtonClick() {
      // 播放点击音效（会自动检查音效是否开启）
      playSound("https://img.jingkakeji.com/img/static/music/click.mp3");
    },

    // 示例3: 播放特定音效
    onSuccess() {
      // 播放成功音效
      playSound("https://img.jingkakeji.com/img/static/music/success.mp3", 0.8);
    },

    // 示例4: 播放错误音效
    onError() {
      // 播放错误音效
      playSound("https://img.jingkakeji.com/img/static/music/error.mp3", 0.6);
    },

    // 示例5: 动态切换音效状态
    toggleSound() {
      const currentState = getGameSoundEnabled();
      setGameSoundEnabled(!currentState);

      uni.showToast({
        title: currentState ? "音效已关闭" : "音效已开启",
        icon: "none",
      });
    },

    // 示例6: 动态切换音乐状态
    toggleMusic() {
      const currentState = getGameMusicEnabled();
      setGameMusicEnabled(!currentState);

      if (currentState) {
        // 关闭背景音乐
        if (this.backgroundMusic) {
          this.backgroundMusic.destroy();
          this.backgroundMusic = null;
        }
      } else {
        // 开启背景音乐
        this.backgroundMusic = playBackgroundMusic(
          "https://img.jingkakeji.com/img/static/music/background.mp3",
          0.3,
          true
        );
      }

      uni.showToast({
        title: currentState ? "音乐已关闭" : "音乐已开启",
        icon: "none",
      });
    },
  },

  onUnload() {
    // 页面卸载时停止背景音乐
    if (this.backgroundMusic) {
      this.backgroundMusic.destroy();
    }
  },
};

// 示例7: 在组件中使用
export const MyComponent = {
  methods: {
    handleClick() {
      // 简单播放音效
      playSound("https://img.jingkakeji.com/img/static/music/button.mp3");
    },
  },
};

// 示例8: 在API调用中使用
export const apiCall = async () => {
  try {
    // 执行API调用
    const result = await someApiCall();

    // 成功时播放音效
    playSound("https://img.jingkakeji.com/img/static/music/success.mp3");

    return result;
  } catch (error) {
    // 失败时播放错误音效
    playSound("https://img.jingkakeji.com/img/static/music/error.mp3");
    throw error;
  }
};
